package fr.capsuleaube.android.bean;

import android.os.Parcel;
import android.os.Parcelable;

import java.util.ArrayList;
import java.util.Collections;

import fr.capsuleaube.android.utils.CapsuleComparator;

public class Producteur implements Parcelable {

    public static final Parcelable.Creator<Producteur> CREATOR = new Parcelable.Creator<Producteur>() {
        @Override
        public Producteur createFromParcel(Parcel source) {
            return new Producteur(source);
        }

        @Override
        public Producteur[] newArray(int size) {
            return new Producteur[size];
        }
    };
    private String nom = "";
    private String village = "";
    private ArrayList<Capsule> capsuleArrayList = new ArrayList<Capsule>();

    public Producteur() {

    }

    private Producteur(Parcel in) {
        nom = in.readString();
        village = in.readString();
        in.readTypedList(capsuleArrayList, Capsule.CREATOR);
    }

    public ArrayList<Capsule> getCapsuleArrayList() {
        return capsuleArrayList;
    }

    public Capsule getCapsuleById(int id) {
        for (Capsule c : capsuleArrayList) {
            if (c.getId() == id)
                return c;
        }
        return null;
    }

    public void addCapsule(Capsule c) {
        Boolean newCaps = true;

        for (Capsule c1 : capsuleArrayList) {
            if (c.getId().equals(c1.getId())) {
                newCaps = false;
            }
        }
        if (newCaps) {
            capsuleArrayList.add(c);
            Collections.sort(capsuleArrayList, new CapsuleComparator());
        }
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getVillage() {
        return village;
    }

    public void setVillage(String village) {
        if (village != null && village.length() >= 0) {
            this.village = village;
        }
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeString(nom);
        parcel.writeString(village);
        parcel.writeTypedList(capsuleArrayList);
    }
}
